/*
 *  Entrada, es el generador de conductores para el
 *  sistema.
 */
#include "Conductor.h"
#include "Entrada.h"
#include <stdio.h>
#include <stdlib.h>

Define_Module(Entrada);

/*
 * Variable utilizada para llevar la ID de los conductores
 * generados en las diferentes entradas
 */
extern int numero;

Entrada::Entrada(){}

Entrada::~Entrada(){
}

void Entrada::initialize(){
	numero=0;
	arribo = new cMessage("Arriba conductor");
	scheduleAt(simTime()+tiempoInterArribo(),arribo);
}

void Entrada::handleMessage(cMessage *msg){
		numero++;
		Conductor *persona = new Conductor(numero);
        char p[40];
        sprintf(p,"%d",numero);
		persona->setName(p);
		send(persona,"salida");
		scheduleAt(simTime()+tiempoInterArribo(),msg);
}

/*
 *Recupera el tiempo de interarribo desde el omnetpp.ini
 */
simtime_t Entrada::tiempoInterArribo(){
	simtime_t tiempo = par("interArribo");
	if(tiempo < 0)
		tiempo *= -1;
	return tiempo;
}

